In computer systems, application programs use system memory in order to perform their processing. In some systems, the required system memory is dynamically allocated, that is, the memory is allocated during the runtime of the application program, usually as the application program starts up or initialises its processing. The allocated memory is then used to store data associated with the application program in a predetermined type of data structure such as a heap. In such dynamic memory allocation arrangements, a maintenance process is commonly employed periodically to identify any memory elements in the allocated memory, such as objects or data, which are inaccessible to the application program. The maintenance process is arranged to free such identified elements for subsequent use by the application program. Such maintenance processes are commonly referred to as garbage collection processes.
One problem with using garbage collection processes, particularly where the performance of the corresponding application program is critical, is that the processing resource required by the garbage collection process is detrimental to the overall processing performance of the application program.